博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
3、render使用添加命名空间抛出404错误
阅读量:6291 次
发布时间:2019-06-22

本文共 2360 字,大约阅读时间需要 7 分钟。

第三部分官网参考链接

1、编写更多视图:
添加函数
polls/views.py

def detail(request, question_id):    return HttpResponse("You're looking at question %s." % question_id)def results(request, question_id):    response = "You're looking at the results of question %s."    return HttpResponse(response % question_id)def vote(request, question_id):    return HttpResponse("You're voting on question %s." % question_id)

url函数调用

polls/urls.py

from django.urls import pathfrom . import viewsurlpatterns = [    # ex: /polls/    path('', views.index, name='index'),        # ex: /polls/5    path('
/', views.detail, name='detail'), # ex: /polls/5/results/ path('
/results/', views.results, name='results'), # ex: /polls/5/vote/ path('
/vote/', views.vote, name='vote'),]

访问:

2、一个快捷函数: render()的使用

(1) 编写index视图

polls/views.pyfrom django.shortcuts import renderfrom .models import Questiondef index(request):    latest_question_list = Question.objects.order_by('-pub_date')[:5]    context = {'latest_question_list': latest_question_list}    return render(request, 'polls/index.html', context)

(2)添加模板

polls应用下创建templates/polls子文件夹,再在polls/templates/polls下创建index.html
polls/templates/polls/index.html

{% if latest_question_list %}    
{% else %}

No polls are available.

{% endif %}

页面添加六条数据

测试访问:

3、一个快捷函数: get_object_or_404()抛出404错误

(1)编写视图

from django.shortcuts import get_object_or_404, renderfrom .models import Questiondef detail(request, question_id):    question = get_object_or_404(Question, pk=question_id)    return render(request, 'polls/detail.html', {'question': question})

添加模板系统

polls/templates/polls/detail.html
{
{ question }}

4、为 URL 名称添加命名空间

在每个应用的的urls下添加对应的应用名字的命名空间
polls/urls.py

from django.urls import pathfrom . import viewsapp_name = 'polls'   #添加命名空间urlpatterns = [    path('', views.index, name='index'),    path('
/', views.detail, name='detail'), path('
/results/', views.results, name='results'), path('
/vote/', views.vote, name='vote'),]

修改为指向具有命名空间的详细视图:

polls/templates/polls/index.html
<li><a href="{% url 'polls:detail' question.id %}">{
{ question.question_text }}</a></li>

转载于:https://blog.51cto.com/yht1990/2383312

你可能感兴趣的文章
路由器ospf动态路由配置
查看>>
zabbix监控安装与配置
查看>>
python 异常
查看>>
last_insert_id()获取mysql最后一条记录ID
查看>>
可执行程序找不到lib库地址的处理方法
查看>>
bash数组
查看>>
Richard M. Stallman 给《自由开源软件本地化》写的前言
查看>>
oracle数据库密码过期报错
查看>>
修改mysql数据库的默认编码方式 .
查看>>
zip
查看>>
How to recover from root.sh on 11.2 Grid Infrastructure Failed
查看>>
rhel6下安装配置Squid过程
查看>>
《树莓派开发实战(第2版)》——1.1 选择树莓派型号
查看>>
在 Linux 下使用 fdisk 扩展分区容量
查看>>
结合AlphaGo算法和大数据的量化基本面分析法探讨
查看>>
如何在 Ubuntu Linux 16.04 LTS 中使用多个连接加速 apt-get/apt
查看>>
《OpenACC并行编程实战》—— 导读
查看>>
机器学习:用初等数学解读逻辑回归
查看>>
如何在 Ubuntu 中管理和使用逻辑卷管理 LVM
查看>>
Oracle原厂老兵:从负面案例看Hint的最佳使用方式
查看>>